pd <- matrix(data = c(15, 5, 2, 550), byrow = T, nrow = 2,
dimnames = list(c("positivos", "negativos"), c("enfermos", "sanos")
)
)
pd enfermos sanos
positivos 15 5
negativos 2 550
Una prueba diagnóstica es un proceso diseñado para detectar lesiones, antígenos, anticuerpos, sustancias tóxicas, organismos o marcadores genéticos.
Debido a su uso, aplicación o ambos, las pruebas pueden ser: filtro o tamiz y diagnósticas. Las pruebas filtro son aplicadas a poblaciones aparentemente sanas, para detectar infección o enfermedad subclínica y las diagnósticas a poblaciones afectadas.
Por regla general, se dice que las pruebas filtro se llevan a cabo en poblaciones grandes y son seguidas por pruebas diagnósticas en aquellos animales que resulten positivos. (Jaramillo Arango 2010)
Se puede hacer evaluaciones con datos categóricos o continuos, aquí veremos los casos correspondientes a datos categóricos dicotómicos (positivo, negativo).
La evaluación de las pruebas se realiza mediante tablas de 2 X 2, con la siguiente disposición:
| Filas \ Columnas | Enfermos | Sanos | Total filas |
|---|---|---|---|
| Positivos | a (VP) | b (FP) | a + b (TP) |
| Negativos | c (FN) | d (VN) | c + d (TN) |
| Total columnas | a + c (TE) | b + d (TS) | a + b + c + d (N) |
Donde:
VP = Verdaderos Positivos
VN = Verdaderos Negativos
FN = Falsos Negativos
FP = Falsos Positivos
TE = Total Enfermos
TS = Total Sanos
TP = Total Positivos
TN = Total Negativos
N = Pruebas Totales
La validez de una prueba se define como su capacidad para diferenciar entre los que tienen una enfermedad y los que no la tienen.
La validez posee dos componentes: sensibilidad y especificidad.
La sensibilidad de la prueba se define como la capacidad de la prueba para identificar correctamente a aquellos que tienen la enfermedad.
La especificidad de la prueba se define como la capacidad de la prueba para identificar correctamente a aquellos que no tienen la enfermedad. (Celentano 2019)

\[\begin{equation}{ } Validez = \frac{VP + VN} {N} \end{equation}\] \[\begin{equation}{ } Sensibilidad = \frac{VP} {TE} \end{equation}\] \[\begin{equation}{ } Especificidad = \frac{VN} {TS} \end{equation}\]
Ejemplo: Dada la siguiente tabla
pd <- matrix(data = c(15, 5, 2, 550), byrow = T, nrow = 2,
dimnames = list(c("positivos", "negativos"), c("enfermos", "sanos")
)
)
pd enfermos sanos
positivos 15 5
negativos 2 550
(pd[1] + pd[4]) / sum(pd)[1] 0.9877622
Es decir 98.77%
Usamos el comando prop.table y dentro del paréntesis especificamos “margin = 2” para que las proporciones se calculen por columnas.
En la tabla creada, la sensibilidad será el cuadrante superior izquierdo y la especificidad será el cuadrante inferior derecho.
prop.table(x = pd, margin = 2) enfermos sanos
positivos 0.8823529 0.009009009
negativos 0.1176471 0.990990991
Es decir que la sensibilidad es del 88.23% y la especificidad del 99.09%
El valor predictivo puede definirse como la probabilidad de que el resultado de la prueba refleje el estado verdadero.
Hay valores predictivos positivos (VPP) y valores predictivos negativos (VPN).
El valor predictivo positivo es la probabilidad de que un individuo con resultado positivo a la prueba esté enfermo.
El valor predictivo negativo es la probabilidad de que un individuo con resultado negativo a la prueba esté sano. (Jaramillo Arango 2010)

\[\begin{equation}{} VPP = \frac{VP} {TP} \end{equation}\] \[\begin{equation}{} VPN = \frac{VN} { TN} \end{equation}\]
La validez de las pruebas diagnósticas; es decir su sensibilidad y especificidad, son inherentes a ellas; los valores predictivos en cambio, dependen fuertemente de la prevalencia.
Veamos los siguientes ejemplos con diferentes prevalencias pero con la misma sensibilidad y especificidad:
prev_5 <- matrix(data = c(45, 47, 5, 903), nrow = 2, byrow = T)
# Validez
(val_5 <- (prev_5[1] + prev_5[4]) / sum(prev_5))[1] 0.948
# VPP
(vpp_5 <- prop.table(prev_5, 1)[1])[1] 0.4891304
# VPN
(vpn_5 <- prop.table(prev_5, 2)[4])[1] 0.9505263
prev_50 <- matrix(data = c(450, 25, 50, 475), nrow = 2, byrow = T)
# Validez
(val_50 <- (prev_50[1] + prev_50[4]) / sum(prev_50))[1] 0.925
# VPP
(vpp_50 <- prop.table(prev_50, 1)[1])[1] 0.9473684
# VPN
(vpn_50 <- prop.table(prev_50, 2)[4])[1] 0.95
Sensibilidad 90%, Especificidad 95%, Prevalencia 95%
prev_95 <- matrix(data = c(855, 2, 95, 48), nrow = 2, byrow = T)
# Validez
(val_95 <- (prev_95[1] + prev_95[4]) / sum(prev_50))[1] 0.903
# VPP
(vpp_95 <- prop.table(prev_95, 1)[1])[1] 0.9976663
# VPN
(vpn_95 <- prop.table(prev_95, 2)[4])[1] 0.96
data.frame(Medida = c("Validez", "VPP", "VPN"),
Prevalencia_5 = round(c(val_5, vpp_5, vpn_5), 4),
Prevalencia_50 = round(c(val_50, vpp_50, vpn_50), 4),
Prevalencia_95 = round(c(val_95, vpp_95, vpn_95), 4)
) Medida Prevalencia_5 Prevalencia_50 Prevalencia_95
1 Validez 0.9480 0.9250 0.9030
2 VPP 0.4891 0.9474 0.9977
3 VPN 0.9505 0.9500 0.9600
data.frame(Medida = c("Sensibilidad", "Especificidad", "Validez", "VPP", "VPN"),
Prevalencia_5 = round(c(0.9, 0.95,val_5, vpp_5, vpn_5), 4),
Prevalencia_50 = round(c(0.9, 0.95, val_50, vpp_50, vpn_50), 4),
Prevalencia_95 = round(c(0.9, 0.95, val_95, vpp_95, vpn_95), 4)
) Medida Prevalencia_5 Prevalencia_50 Prevalencia_95
1 Sensibilidad 0.9000 0.9000 0.9000
2 Especificidad 0.9500 0.9500 0.9500
3 Validez 0.9480 0.9250 0.9030
4 VPP 0.4891 0.9474 0.9977
5 VPN 0.9505 0.9500 0.9600
Conclusiones:
Con una baja prevalencia, la validez se acerca a la especificidad.
Con una alta prevalencia, la validez se acerca a la sensibilidad.
A mayor prevalencia, mayor valor predictivo positivo.